home *** CD-ROM | disk | FTP | other *** search
/ Java Primer Plus / Java Primer Plus (Waite Group Proess)(1996).iso / java_Win / demo / ImageMap / HighlightFilter.class (.txt) < prev    next >
Encoding:
Java Class File  |  1995-10-12  |  1.1 KB  |  54 lines

  1. import java.awt.image.RGBImageFilter;
  2.  
  3. class HighlightFilter extends RGBImageFilter {
  4.    boolean brighter;
  5.    int percent;
  6.  
  7.    public HighlightFilter(boolean b, int p) {
  8.       this.brighter = b;
  9.       this.percent = p;
  10.       super.canFilterIndexColorModel = true;
  11.    }
  12.  
  13.    public int filterRGB(int x, int y, int rgb) {
  14.       int r = rgb >> 16 & 255;
  15.       int g = rgb >> 8 & 255;
  16.       int b = rgb & 255;
  17.       if (this.brighter) {
  18.          r = 255 - (255 - r) * (100 - this.percent) / 100;
  19.          g = 255 - (255 - g) * (100 - this.percent) / 100;
  20.          b = 255 - (255 - b) * (100 - this.percent) / 100;
  21.       } else {
  22.          r = r * (100 - this.percent) / 100;
  23.          g = g * (100 - this.percent) / 100;
  24.          b = b * (100 - this.percent) / 100;
  25.       }
  26.  
  27.       if (r < 0) {
  28.          r = 0;
  29.       }
  30.  
  31.       if (r > 255) {
  32.          r = 255;
  33.       }
  34.  
  35.       if (g < 0) {
  36.          g = 0;
  37.       }
  38.  
  39.       if (g > 255) {
  40.          g = 255;
  41.       }
  42.  
  43.       if (b < 0) {
  44.          b = 0;
  45.       }
  46.  
  47.       if (b > 255) {
  48.          b = 255;
  49.       }
  50.  
  51.       return rgb & -16777216 | r << 16 | g << 8 | b;
  52.    }
  53. }
  54.